package net.zio.kamenriderzioaddon.ridersystem.behavior;

import net.minecraft.world.entity.player.Player;
import net.zio.kamenriderzioaddon.ridersystem.registry.BaseRiderConfig;
import net.zio.kamenriderzioaddon.ridersystem.registry.FullRiderConfig;

/**
 * 骑士变身行为接口
 *
 * <p>定义骑士变身系统的核心行为方法</p>
 * @author QianYunYi
 */
public interface IHenshinBaseBehavior {

    /**
     * 进入待机状态
     *
     * @param player 执行变身的玩家
     * @param config 骑士配置对象
     */
    void enterStandbyState(Player player, BaseRiderConfig config);


    /**
     * 处理标准变身流程
     *
     * <p>在玩家非下蹲状态下触发</p>
     *
     * @param player 执行变身的玩家
     * @param config 骑士配置对象
     */
    void handleHenshin(Player player, BaseRiderConfig config);

    /**
     * 处理快速变身流程
     *
     * <p>在玩家下蹲状态下触发</p>
     *
     * @param player 执行变身的玩家
     * @param config 骑士配置对象
     */
    void handleQuickTransformation(Player player, BaseRiderConfig config);

    /**
     * 处理解除变身流程
     *
     * <p>在玩家下蹲状态下触发</p>
     *
     * @param player 执行解除变身的玩家
     * @param config 骑士配置对象
     */
    void handleDeactivation(Player player, BaseRiderConfig config);


}